Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.09.2018, 07:56
Аспирант
Отправить личное сообщение для kuchuluk Посмотреть профиль Найти все сообщения от kuchuluk
 
Регистрация: 04.04.2014
Сообщений: 33

Почему переменную не видно после Ajax-а?
Здравствуйте. Есть массив workersArr2, нужно получить его длину, после того, как вставлю в него значения из базы Ajax-ом.
var workersArrLength = 0;
								
reqwest({
	url: '/graph/getworkerquarter/'
	, method: 'post'
	, data: {json: worker}
	, success: function (resp) {
		resp = Number(resp);
		test = Number(test);
		quatrHours = resp + test;
		if (normBalanceQuarter != quatrHours) {
			var fio = elem.firstChild.nextSibling.innerHTML;
			workersArr2.push(fio);
			workersArrLength = workersArr2.length;
		}
	}
})

Но workersArrLength пустая. Хотя я точно знаю, что данные в массив попадают. Так как алертом внутри ajax запроса они выводятся, а после него нет
Ответить с цитированием
  #2 (permalink)  
Старый 28.09.2018, 09:20
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Вы скорее всего неправильно понимаете очередность выполнения операций.
let someVariable; //1
fetch('/') //2
    .then(() => {
        alert('Request completed'); //4
        someVariable = 1; //5
    });

alert('someVariable = ' + someVariable); //3

Асинхронный запрос не блокирует поток, поэтому сначала запрос будет отправлен, сразу после отправки (до получения ответа) будет выполнен код, что идет после него и только когда запрос завершится будет выполнен код callback-функции.
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2018, 14:14
Аспирант
Отправить личное сообщение для kuchuluk Посмотреть профиль Найти все сообщения от kuchuluk
 
Регистрация: 04.04.2014
Сообщений: 33

А как тогда быть, если мне нужно пр клике на кнопку получить аяксом кое-какие данные из БД, загнать их в массив и выполнить с этим массивом действия?
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2018, 14:38
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

kuchuluk, выполняйте действия в callback-функции.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
После ajax возврата поймать изменение размера div Bezlepkin Общие вопросы Javascript 1 16.07.2015 17:20
Почему скрипт срабатывает только после обновления страницы? Randomizer jQuery 2 01.09.2010 19:01
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23